/*
 * CSReportEditorView.java
 */

package csreporteditor;

import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
 * The application's main frame.
 */
public class CSReportEditorView extends FrameView {

    public CSReportEditorView(SingleFrameApplication app) {
        super(app);

        initComponents();

        m_reports = new ArrayList<cEditor>();
        pnEditor1.setLayout(null);
        m_reports.add(new cEditor(pnEditor1, pnRule1, pnReport1));

        ResourceMap resourceMap = getResourceMap();
        getFrame().setIconImage(resourceMap.getImageIcon("app.icon").getImage());

        // status bar initialization - message timeout, idle icon and busy animation, etc
        int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
        messageTimer = new Timer(messageTimeout, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusMessageLabel.setText("");
            }
        });
        messageTimer.setRepeats(false);
        int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
        for (int i = 0; i < busyIcons.length; i++) {
            busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
        }
        busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
            }
        });
        idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
        statusAnimationLabel.setIcon(idleIcon);
        progressBar.setVisible(false);

        // connecting action tasks to status bar via TaskMonitor
        TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
        taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                String propertyName = evt.getPropertyName();
                if ("started".equals(propertyName)) {
                    if (!busyIconTimer.isRunning()) {
                        statusAnimationLabel.setIcon(busyIcons[0]);
                        busyIconIndex = 0;
                        busyIconTimer.start();
                    }
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(true);
                } else if ("done".equals(propertyName)) {
                    busyIconTimer.stop();
                    statusAnimationLabel.setIcon(idleIcon);
                    progressBar.setVisible(false);
                    progressBar.setValue(0);
                } else if ("message".equals(propertyName)) {
                    String text = (String)(evt.getNewValue());
                    statusMessageLabel.setText((text == null) ? "" : text);
                    messageTimer.restart();
                } else if ("progress".equals(propertyName)) {
                    int value = (Integer)(evt.getNewValue());
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                    progressBar.setValue(value);
                }
            }
        });
    }

    @Action
    public void showAboutBox() {
        if (aboutBox == null) {
            JFrame mainFrame = CSReportEditorApp.getApplication().getMainFrame();
            aboutBox = new CSReportEditorAboutBox(mainFrame);
            aboutBox.setLocationRelativeTo(mainFrame);
        }
        CSReportEditorApp.getApplication().show(aboutBox);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        splMain = new javax.swing.JSplitPane();
        tabToolbox = new javax.swing.JTabbedPane();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        tabReport = new javax.swing.JTabbedPane();
        sclReport1 = new javax.swing.JScrollPane();
        pnEditor1 = new javax.swing.JPanel();
        pnRule1 = new javax.swing.JPanel();
        pnReport1 = new javax.swing.JPanel();
        jToolBar1 = new javax.swing.JToolBar();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jSeparator14 = new javax.swing.JToolBar.Separator();
        jButton5 = new javax.swing.JButton();
        jSeparator15 = new javax.swing.JToolBar.Separator();
        jButton6 = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        jSeparator16 = new javax.swing.JToolBar.Separator();
        jButton8 = new javax.swing.JButton();
        jButton9 = new javax.swing.JButton();
        jSeparator17 = new javax.swing.JToolBar.Separator();
        jButton10 = new javax.swing.JButton();
        jButton11 = new javax.swing.JButton();
        jButton12 = new javax.swing.JButton();
        jSeparator18 = new javax.swing.JToolBar.Separator();
        jButton13 = new javax.swing.JButton();
        jSeparator19 = new javax.swing.JToolBar.Separator();
        jButton14 = new javax.swing.JButton();
        menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu mnuFile = new javax.swing.JMenu();
        mnuNew = new javax.swing.JMenuItem();
        mnuOpen = new javax.swing.JMenuItem();
        mnuSave = new javax.swing.JMenuItem();
        mnuSaveAs = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JPopupMenu.Separator();
        mnuPageSetup = new javax.swing.JMenuItem();
        mnuPrinterSettings = new javax.swing.JMenuItem();
        jSeparator2 = new javax.swing.JPopupMenu.Separator();
        mnuPreview = new javax.swing.JMenuItem();
        mnuPrint = new javax.swing.JMenuItem();
        jSeparator3 = new javax.swing.JPopupMenu.Separator();
        mnuOpenRecent = new javax.swing.JMenu();
        jSeparator4 = new javax.swing.JPopupMenu.Separator();
        javax.swing.JMenuItem mnuExit = new javax.swing.JMenuItem();
        mnuEdit = new javax.swing.JMenu();
        mnuCopy = new javax.swing.JMenuItem();
        mnuCut = new javax.swing.JMenuItem();
        mnuPaste = new javax.swing.JMenuItem();
        jSeparator5 = new javax.swing.JPopupMenu.Separator();
        mnuSearch = new javax.swing.JMenuItem();
        jSeparator8 = new javax.swing.JPopupMenu.Separator();
        mnuSections = new javax.swing.JMenu();
        mnuAddHeader = new javax.swing.JMenuItem();
        mnuAddGroup = new javax.swing.JMenuItem();
        mnuAddFooter = new javax.swing.JMenuItem();
        mnuControls = new javax.swing.JMenu();
        mnuAddLabel = new javax.swing.JMenuItem();
        mnuAddLine = new javax.swing.JMenuItem();
        mnuAddDataBaseField = new javax.swing.JMenuItem();
        mnuAddImage = new javax.swing.JMenuItem();
        mnuAddChart = new javax.swing.JMenuItem();
        jSeparator6 = new javax.swing.JPopupMenu.Separator();
        mnuMove = new javax.swing.JMenu();
        mnuMoveHorizontal = new javax.swing.JMenuItem();
        mnuMoveVertical = new javax.swing.JMenuItem();
        mnuLock = new javax.swing.JMenuItem();
        mnuMoveOnAllDirections = new javax.swing.JMenuItem();
        jSeparator7 = new javax.swing.JPopupMenu.Separator();
        mnuSizeOfStepWithKeyboard = new javax.swing.JMenuItem();
        mnuView = new javax.swing.JMenu();
        mnuViewToolBox = new javax.swing.JMenuItem();
        mnuViewControlGrid = new javax.swing.JMenuItem();
        mnuViewControlTree = new javax.swing.JMenuItem();
        jSeparator9 = new javax.swing.JPopupMenu.Separator();
        mnuViewGrid = new javax.swing.JMenu();
        mnuViewGridPoints = new javax.swing.JMenuItem();
        mnuViewGridLines = new javax.swing.JMenu();
        mnuViewGridLinesVertial = new javax.swing.JMenuItem();
        mnuViewGridLinesHorizontal = new javax.swing.JMenuItem();
        mnuViewGridLinesBoth = new javax.swing.JMenuItem();
        mnuViewGridHide = new javax.swing.JMenuItem();
        mnuDataBase = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jSeparator10 = new javax.swing.JPopupMenu.Separator();
        jMenuItem3 = new javax.swing.JMenuItem();
        jSeparator11 = new javax.swing.JPopupMenu.Separator();
        jMenuItem4 = new javax.swing.JMenuItem();
        jSeparator12 = new javax.swing.JPopupMenu.Separator();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        jSeparator13 = new javax.swing.JPopupMenu.Separator();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem9 = new javax.swing.JMenuItem();
        javax.swing.JMenu mnuHelp = new javax.swing.JMenu();
        javax.swing.JMenuItem mnuAbout = new javax.swing.JMenuItem();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();

        mainPanel.setName("mainPanel"); // NOI18N

        splMain.setBorder(null);
        splMain.setName("splMain"); // NOI18N

        tabToolbox.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);
        tabToolbox.setName("tabToolbox"); // NOI18N

        jPanel2.setName("jPanel2"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 150, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 347, Short.MAX_VALUE)
        );

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(csreporteditor.CSReportEditorApp.class).getContext().getResourceMap(CSReportEditorView.class);
        tabToolbox.addTab(resourceMap.getString("jPanel2.TabConstraints.tabTitle"), jPanel2); // NOI18N

        jPanel3.setName("jPanel3"); // NOI18N

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 150, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 347, Short.MAX_VALUE)
        );

        tabToolbox.addTab(resourceMap.getString("jPanel3.TabConstraints.tabTitle"), jPanel3); // NOI18N

        jPanel4.setName("jPanel4"); // NOI18N

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 150, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 347, Short.MAX_VALUE)
        );

        tabToolbox.addTab(resourceMap.getString("jPanel4.TabConstraints.tabTitle"), jPanel4); // NOI18N

        splMain.setLeftComponent(tabToolbox);

        tabReport.setMinimumSize(new java.awt.Dimension(250, 128));
        tabReport.setName("tabReport"); // NOI18N
        tabReport.setPreferredSize(new java.awt.Dimension(250, 100));

        sclReport1.setName("sclReport1"); // NOI18N

        pnEditor1.setBackground(resourceMap.getColor("pnEditor1.background")); // NOI18N
        pnEditor1.setName("pnEditor1"); // NOI18N

        pnRule1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pnRule1.setName("pnRule1"); // NOI18N

        javax.swing.GroupLayout pnRule1Layout = new javax.swing.GroupLayout(pnRule1);
        pnRule1.setLayout(pnRule1Layout);
        pnRule1Layout.setHorizontalGroup(
            pnRule1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        pnRule1Layout.setVerticalGroup(
            pnRule1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        pnReport1.setBackground(resourceMap.getColor("pnReport1.background")); // NOI18N
        pnReport1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pnReport1.setName("pnReport1"); // NOI18N

        javax.swing.GroupLayout pnReport1Layout = new javax.swing.GroupLayout(pnReport1);
        pnReport1.setLayout(pnReport1Layout);
        pnReport1Layout.setHorizontalGroup(
            pnReport1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        pnReport1Layout.setVerticalGroup(
            pnReport1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout pnEditor1Layout = new javax.swing.GroupLayout(pnEditor1);
        pnEditor1.setLayout(pnEditor1Layout);
        pnEditor1Layout.setHorizontalGroup(
            pnEditor1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnEditor1Layout.createSequentialGroup()
                .addComponent(pnRule1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(pnReport1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(293, Short.MAX_VALUE))
        );
        pnEditor1Layout.setVerticalGroup(
            pnEditor1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnEditor1Layout.createSequentialGroup()
                .addGroup(pnEditor1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(pnReport1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(pnRule1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(276, Short.MAX_VALUE))
        );

        sclReport1.setViewportView(pnEditor1);

        tabReport.addTab(resourceMap.getString("sclReport1.TabConstraints.tabTitle"), sclReport1); // NOI18N

        splMain.setRightComponent(tabReport);

        jToolBar1.setRollover(true);
        jToolBar1.setName("jToolBar1"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(csreporteditor.CSReportEditorApp.class).getContext().getActionMap(CSReportEditorView.class, this);
        jButton2.setAction(actionMap.get("newReport")); // NOI18N
        jButton2.setIcon(resourceMap.getIcon("jButton2.icon")); // NOI18N
        jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
        jButton2.setFocusable(false);
        jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton2.setName("jButton2"); // NOI18N
        jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton2);

        jButton3.setIcon(resourceMap.getIcon("jButton3.icon")); // NOI18N
        jButton3.setText(resourceMap.getString("jButton3.text")); // NOI18N
        jButton3.setFocusable(false);
        jButton3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton3.setName("jButton3"); // NOI18N
        jButton3.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton3);

        jButton1.setIcon(resourceMap.getIcon("jButton1.icon")); // NOI18N
        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setFocusable(false);
        jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton1.setName("jButton1"); // NOI18N
        jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton1);

        jButton4.setIcon(resourceMap.getIcon("jButton4.icon")); // NOI18N
        jButton4.setText(resourceMap.getString("jButton4.text")); // NOI18N
        jButton4.setFocusable(false);
        jButton4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton4.setName("jButton4"); // NOI18N
        jButton4.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton4);

        jSeparator14.setName("jSeparator14"); // NOI18N
        jToolBar1.add(jSeparator14);

        jButton5.setIcon(resourceMap.getIcon("jButton5.icon")); // NOI18N
        jButton5.setText(resourceMap.getString("jButton5.text")); // NOI18N
        jButton5.setFocusable(false);
        jButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton5.setName("jButton5"); // NOI18N
        jButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton5);

        jSeparator15.setName("jSeparator15"); // NOI18N
        jToolBar1.add(jSeparator15);

        jButton6.setIcon(resourceMap.getIcon("jButton6.icon")); // NOI18N
        jButton6.setText(resourceMap.getString("jButton6.text")); // NOI18N
        jButton6.setFocusable(false);
        jButton6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton6.setName("jButton6"); // NOI18N
        jButton6.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton6);

        jButton7.setIcon(resourceMap.getIcon("jButton7.icon")); // NOI18N
        jButton7.setText(resourceMap.getString("jButton7.text")); // NOI18N
        jButton7.setFocusable(false);
        jButton7.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton7.setName("jButton7"); // NOI18N
        jButton7.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton7);

        jSeparator16.setName("jSeparator16"); // NOI18N
        jToolBar1.add(jSeparator16);

        jButton8.setIcon(resourceMap.getIcon("jButton8.icon")); // NOI18N
        jButton8.setText(resourceMap.getString("jButton8.text")); // NOI18N
        jButton8.setFocusable(false);
        jButton8.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton8.setName("jButton8"); // NOI18N
        jButton8.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton8);

        jButton9.setIcon(resourceMap.getIcon("jButton9.icon")); // NOI18N
        jButton9.setText(resourceMap.getString("jButton9.text")); // NOI18N
        jButton9.setFocusable(false);
        jButton9.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton9.setName("jButton9"); // NOI18N
        jButton9.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton9);

        jSeparator17.setName("jSeparator17"); // NOI18N
        jToolBar1.add(jSeparator17);

        jButton10.setIcon(resourceMap.getIcon("jButton10.icon")); // NOI18N
        jButton10.setText(resourceMap.getString("jButton10.text")); // NOI18N
        jButton10.setFocusable(false);
        jButton10.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton10.setName("jButton10"); // NOI18N
        jButton10.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton10);

        jButton11.setIcon(resourceMap.getIcon("jButton11.icon")); // NOI18N
        jButton11.setText(resourceMap.getString("jButton11.text")); // NOI18N
        jButton11.setFocusable(false);
        jButton11.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton11.setName("jButton11"); // NOI18N
        jButton11.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton11);

        jButton12.setIcon(resourceMap.getIcon("jButton12.icon")); // NOI18N
        jButton12.setText(resourceMap.getString("jButton12.text")); // NOI18N
        jButton12.setFocusable(false);
        jButton12.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton12.setName("jButton12"); // NOI18N
        jButton12.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton12);

        jSeparator18.setName("jSeparator18"); // NOI18N
        jToolBar1.add(jSeparator18);

        jButton13.setIcon(resourceMap.getIcon("jButton13.icon")); // NOI18N
        jButton13.setText(resourceMap.getString("jButton13.text")); // NOI18N
        jButton13.setFocusable(false);
        jButton13.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton13.setName("jButton13"); // NOI18N
        jButton13.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton13);

        jSeparator19.setName("jSeparator19"); // NOI18N
        jToolBar1.add(jSeparator19);

        jButton14.setIcon(resourceMap.getIcon("jButton14.icon")); // NOI18N
        jButton14.setText(resourceMap.getString("jButton14.text")); // NOI18N
        jButton14.setFocusable(false);
        jButton14.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton14.setName("jButton14"); // NOI18N
        jButton14.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton14);

        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
            .addComponent(splMain, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(splMain, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE))
        );

        menuBar.setName("menuBar"); // NOI18N

        mnuFile.setMnemonic('F');
        mnuFile.setText(resourceMap.getString("mnuFile.text")); // NOI18N
        mnuFile.setName("mnuFile"); // NOI18N

        mnuNew.setAction(actionMap.get("newReport")); // NOI18N
        mnuNew.setText(resourceMap.getString("mnuNew.text")); // NOI18N
        mnuNew.setName("mnuNew"); // NOI18N
        mnuFile.add(mnuNew);

        mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        mnuOpen.setMnemonic('O');
        mnuOpen.setText(resourceMap.getString("mnuOpen.text")); // NOI18N
        mnuOpen.setName("mnuOpen"); // NOI18N
        mnuFile.add(mnuOpen);

        mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        mnuSave.setMnemonic('S');
        mnuSave.setText(resourceMap.getString("mnuSave.text")); // NOI18N
        mnuSave.setName("mnuSave"); // NOI18N
        mnuFile.add(mnuSave);

        mnuSaveAs.setText(resourceMap.getString("mnuSaveAs.text")); // NOI18N
        mnuSaveAs.setName("mnuSaveAs"); // NOI18N
        mnuFile.add(mnuSaveAs);

        jSeparator1.setName("jSeparator1"); // NOI18N
        mnuFile.add(jSeparator1);

        mnuPageSetup.setText(resourceMap.getString("mnuPageSetup.text")); // NOI18N
        mnuPageSetup.setName("mnuPageSetup"); // NOI18N
        mnuFile.add(mnuPageSetup);

        mnuPrinterSettings.setText(resourceMap.getString("mnuPrinterSettings.text")); // NOI18N
        mnuPrinterSettings.setName("mnuPrinterSettings"); // NOI18N
        mnuFile.add(mnuPrinterSettings);

        jSeparator2.setName("jSeparator2"); // NOI18N
        mnuFile.add(jSeparator2);

        mnuPreview.setText(resourceMap.getString("mnuPreview.text")); // NOI18N
        mnuPreview.setName("mnuPreview"); // NOI18N
        mnuFile.add(mnuPreview);

        mnuPrint.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
        mnuPrint.setText(resourceMap.getString("mnuPrint.text")); // NOI18N
        mnuPrint.setName("mnuPrint"); // NOI18N
        mnuFile.add(mnuPrint);

        jSeparator3.setName("jSeparator3"); // NOI18N
        mnuFile.add(jSeparator3);

        mnuOpenRecent.setText(resourceMap.getString("mnuOpenRecent.text")); // NOI18N
        mnuOpenRecent.setName("mnuOpenRecent"); // NOI18N
        mnuFile.add(mnuOpenRecent);

        jSeparator4.setName("jSeparator4"); // NOI18N
        mnuFile.add(jSeparator4);

        mnuExit.setAction(actionMap.get("quit")); // NOI18N
        mnuExit.setName("mnuExit"); // NOI18N
        mnuFile.add(mnuExit);

        menuBar.add(mnuFile);

        mnuEdit.setMnemonic('E');
        mnuEdit.setText(resourceMap.getString("mnuEdit.text")); // NOI18N
        mnuEdit.setName("mnuEdit"); // NOI18N

        mnuCopy.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
        mnuCopy.setMnemonic('C');
        mnuCopy.setText(resourceMap.getString("mnuCopy.text")); // NOI18N
        mnuCopy.setName("mnuCopy"); // NOI18N
        mnuEdit.add(mnuCopy);

        mnuCut.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        mnuCut.setText(resourceMap.getString("mnuCut.text")); // NOI18N
        mnuCut.setName("mnuCut"); // NOI18N
        mnuEdit.add(mnuCut);

        mnuPaste.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK));
        mnuPaste.setText(resourceMap.getString("mnuPaste.text")); // NOI18N
        mnuPaste.setName("mnuPaste"); // NOI18N
        mnuEdit.add(mnuPaste);

        jSeparator5.setName("jSeparator5"); // NOI18N
        mnuEdit.add(jSeparator5);

        mnuSearch.setText(resourceMap.getString("mnuSearch.text")); // NOI18N
        mnuSearch.setName("mnuSearch"); // NOI18N
        mnuEdit.add(mnuSearch);

        jSeparator8.setName("jSeparator8"); // NOI18N
        mnuEdit.add(jSeparator8);

        mnuSections.setText(resourceMap.getString("mnuSections.text")); // NOI18N
        mnuSections.setName("mnuSections"); // NOI18N

        mnuAddHeader.setText(resourceMap.getString("mnuAddHeader.text")); // NOI18N
        mnuAddHeader.setName("mnuAddHeader"); // NOI18N
        mnuSections.add(mnuAddHeader);

        mnuAddGroup.setText(resourceMap.getString("mnuAddGroup.text")); // NOI18N
        mnuAddGroup.setName("mnuAddGroup"); // NOI18N
        mnuSections.add(mnuAddGroup);

        mnuAddFooter.setText(resourceMap.getString("mnuAddFooter.text")); // NOI18N
        mnuAddFooter.setName("mnuAddFooter"); // NOI18N
        mnuSections.add(mnuAddFooter);

        mnuEdit.add(mnuSections);

        mnuControls.setText(resourceMap.getString("mnuControls.text")); // NOI18N
        mnuControls.setName("mnuControls"); // NOI18N

        mnuAddLabel.setText(resourceMap.getString("mnuAddLabel.text")); // NOI18N
        mnuAddLabel.setName("mnuAddLabel"); // NOI18N
        mnuControls.add(mnuAddLabel);

        mnuAddLine.setText(resourceMap.getString("mnuAddLine.text")); // NOI18N
        mnuAddLine.setName("mnuAddLine"); // NOI18N
        mnuControls.add(mnuAddLine);

        mnuAddDataBaseField.setText(resourceMap.getString("mnuAddDataBaseField.text")); // NOI18N
        mnuAddDataBaseField.setName("mnuAddDataBaseField"); // NOI18N
        mnuControls.add(mnuAddDataBaseField);

        mnuAddImage.setText(resourceMap.getString("mnuAddImage.text")); // NOI18N
        mnuAddImage.setName("mnuAddImage"); // NOI18N
        mnuControls.add(mnuAddImage);

        mnuAddChart.setText(resourceMap.getString("mnuAddChart.text")); // NOI18N
        mnuAddChart.setName("mnuAddChart"); // NOI18N
        mnuControls.add(mnuAddChart);

        mnuEdit.add(mnuControls);

        jSeparator6.setName("jSeparator6"); // NOI18N
        mnuEdit.add(jSeparator6);

        mnuMove.setText(resourceMap.getString("mnuMove.text")); // NOI18N
        mnuMove.setName("mnuMove"); // NOI18N

        mnuMoveHorizontal.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F12, 0));
        mnuMoveHorizontal.setText(resourceMap.getString("mnuMoveHorizontal.text")); // NOI18N
        mnuMoveHorizontal.setName("mnuMoveHorizontal"); // NOI18N
        mnuMove.add(mnuMoveHorizontal);

        mnuMoveVertical.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F11, 0));
        mnuMoveVertical.setText(resourceMap.getString("mnuMoveVertical.text")); // NOI18N
        mnuMoveVertical.setName("mnuMoveVertical"); // NOI18N
        mnuMove.add(mnuMoveVertical);

        mnuLock.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F9, 0));
        mnuLock.setText(resourceMap.getString("mnuLock.text")); // NOI18N
        mnuLock.setName("mnuLock"); // NOI18N
        mnuMove.add(mnuLock);

        mnuMoveOnAllDirections.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F8, 0));
        mnuMoveOnAllDirections.setText(resourceMap.getString("mnuMoveOnAllDirections.text")); // NOI18N
        mnuMoveOnAllDirections.setName("mnuMoveOnAllDirections"); // NOI18N
        mnuMove.add(mnuMoveOnAllDirections);

        jSeparator7.setName("jSeparator7"); // NOI18N
        mnuMove.add(jSeparator7);

        mnuSizeOfStepWithKeyboard.setText(resourceMap.getString("mnuSizeOfStepWithKeyboard.text")); // NOI18N
        mnuSizeOfStepWithKeyboard.setName("mnuSizeOfStepWithKeyboard"); // NOI18N
        mnuMove.add(mnuSizeOfStepWithKeyboard);

        mnuEdit.add(mnuMove);

        menuBar.add(mnuEdit);

        mnuView.setMnemonic('V');
        mnuView.setText(resourceMap.getString("mnuView.text")); // NOI18N
        mnuView.setName("mnuView"); // NOI18N

        mnuViewToolBox.setText(resourceMap.getString("mnuViewToolBox.text")); // NOI18N
        mnuViewToolBox.setName("mnuViewToolBox"); // NOI18N
        mnuView.add(mnuViewToolBox);

        mnuViewControlGrid.setText(resourceMap.getString("mnuViewControlGrid.text")); // NOI18N
        mnuViewControlGrid.setName("mnuViewControlGrid"); // NOI18N
        mnuView.add(mnuViewControlGrid);

        mnuViewControlTree.setText(resourceMap.getString("mnuViewControlTree.text")); // NOI18N
        mnuViewControlTree.setName("mnuViewControlTree"); // NOI18N
        mnuView.add(mnuViewControlTree);

        jSeparator9.setName("jSeparator9"); // NOI18N
        mnuView.add(jSeparator9);

        mnuViewGrid.setText(resourceMap.getString("mnuViewGrid.text")); // NOI18N
        mnuViewGrid.setName("mnuViewGrid"); // NOI18N

        mnuViewGridPoints.setText(resourceMap.getString("mnuViewGridPoints.text")); // NOI18N
        mnuViewGridPoints.setName("mnuViewGridPoints"); // NOI18N
        mnuViewGrid.add(mnuViewGridPoints);

        mnuViewGridLines.setText(resourceMap.getString("mnuViewGridLines.text")); // NOI18N
        mnuViewGridLines.setName("mnuViewGridLines"); // NOI18N

        mnuViewGridLinesVertial.setText(resourceMap.getString("mnuViewGridLinesVertial.text")); // NOI18N
        mnuViewGridLinesVertial.setName("mnuViewGridLinesVertial"); // NOI18N
        mnuViewGridLines.add(mnuViewGridLinesVertial);

        mnuViewGridLinesHorizontal.setText(resourceMap.getString("mnuViewGridLinesHorizontal.text")); // NOI18N
        mnuViewGridLinesHorizontal.setName("mnuViewGridLinesHorizontal"); // NOI18N
        mnuViewGridLines.add(mnuViewGridLinesHorizontal);

        mnuViewGridLinesBoth.setText(resourceMap.getString("mnuViewGridLinesBoth.text")); // NOI18N
        mnuViewGridLinesBoth.setName("mnuViewGridLinesBoth"); // NOI18N
        mnuViewGridLines.add(mnuViewGridLinesBoth);

        mnuViewGrid.add(mnuViewGridLines);

        mnuViewGridHide.setText(resourceMap.getString("mnuViewGridHide.text")); // NOI18N
        mnuViewGridHide.setName("mnuViewGridHide"); // NOI18N
        mnuViewGrid.add(mnuViewGridHide);

        mnuView.add(mnuViewGrid);

        menuBar.add(mnuView);

        mnuDataBase.setMnemonic('D');
        mnuDataBase.setText(resourceMap.getString("mnuDataBase.text")); // NOI18N
        mnuDataBase.setName("mnuDataBase"); // NOI18N

        jMenuItem1.setText(resourceMap.getString("jMenuItem1.text")); // NOI18N
        jMenuItem1.setName("jMenuItem1"); // NOI18N
        mnuDataBase.add(jMenuItem1);

        jMenuItem2.setText(resourceMap.getString("jMenuItem2.text")); // NOI18N
        jMenuItem2.setName("jMenuItem2"); // NOI18N
        mnuDataBase.add(jMenuItem2);

        jSeparator10.setName("jSeparator10"); // NOI18N
        mnuDataBase.add(jSeparator10);

        jMenuItem3.setText(resourceMap.getString("jMenuItem3.text")); // NOI18N
        jMenuItem3.setName("jMenuItem3"); // NOI18N
        mnuDataBase.add(jMenuItem3);

        jSeparator11.setName("jSeparator11"); // NOI18N
        mnuDataBase.add(jSeparator11);

        jMenuItem4.setText(resourceMap.getString("jMenuItem4.text")); // NOI18N
        jMenuItem4.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jMenuItem4.setName("jMenuItem4"); // NOI18N
        mnuDataBase.add(jMenuItem4);

        jSeparator12.setName("jSeparator12"); // NOI18N
        mnuDataBase.add(jSeparator12);

        jMenu1.setText(resourceMap.getString("jMenu1.text")); // NOI18N
        jMenu1.setName("jMenu1"); // NOI18N

        jMenuItem5.setText(resourceMap.getString("jMenuItem5.text")); // NOI18N
        jMenuItem5.setName("jMenuItem5"); // NOI18N
        jMenu1.add(jMenuItem5);

        jMenuItem6.setText(resourceMap.getString("jMenuItem6.text")); // NOI18N
        jMenuItem6.setName("jMenuItem6"); // NOI18N
        jMenu1.add(jMenuItem6);

        jMenuItem7.setText(resourceMap.getString("jMenuItem7.text")); // NOI18N
        jMenuItem7.setName("jMenuItem7"); // NOI18N
        jMenu1.add(jMenuItem7);

        mnuDataBase.add(jMenu1);

        jSeparator13.setName("jSeparator13"); // NOI18N
        mnuDataBase.add(jSeparator13);

        jMenuItem8.setText(resourceMap.getString("jMenuItem8.text")); // NOI18N
        jMenuItem8.setName("jMenuItem8"); // NOI18N
        mnuDataBase.add(jMenuItem8);

        menuBar.add(mnuDataBase);

        jMenu2.setText(resourceMap.getString("jMenu2.text")); // NOI18N
        jMenu2.setName("jMenu2"); // NOI18N

        jMenuItem9.setAction(actionMap.get("showPreferences")); // NOI18N
        jMenuItem9.setText(resourceMap.getString("jMenuItem9.text")); // NOI18N
        jMenuItem9.setName("jMenuItem9"); // NOI18N
        jMenu2.add(jMenuItem9);

        menuBar.add(jMenu2);

        mnuHelp.setText(resourceMap.getString("mnuHelp.text")); // NOI18N
        mnuHelp.setName("mnuHelp"); // NOI18N

        mnuAbout.setAction(actionMap.get("showAboutBox")); // NOI18N
        mnuAbout.setName("mnuAbout"); // NOI18N
        mnuHelp.add(mnuAbout);

        menuBar.add(mnuHelp);

        statusPanel.setName("statusPanel"); // NOI18N

        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setName("progressBar"); // NOI18N

        javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(statusMessageLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 500, Short.MAX_VALUE)
                .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(statusAnimationLabel)
                .addContainerGap())
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(statusMessageLabel)
                    .addComponent(statusAnimationLabel)
                    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(3, 3, 3))
        );

        setComponent(mainPanel);
        setMenuBar(menuBar);
        setStatusBar(statusPanel);
    }// </editor-fold>//GEN-END:initComponents

    @Action
    public void newReport() {
        JPanel rule = new JPanel();
        JPanel report = new JPanel();
        JPanel editor = new JPanel();
        JScrollPane scroll = new JScrollPane();
        editor.setLayout(null);
        editor.add(rule);
        editor.add(report);
        scroll.setViewportView(editor);
        ResourceMap resourceMap = getResourceMap();
        tabReport.addTab(resourceMap.getString("sclReport1.TabConstraints.tabTitle"), scroll);
        m_reports.add(new cEditor(editor, rule, report));
    }

    @Action
    public void showPreferences() {
        fToolsOptions op = new fToolsOptions(this.getFrame(), true);
        CSReportEditorApp.getApplication().show(op);
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton12;
    private javax.swing.JButton jButton13;
    private javax.swing.JButton jButton14;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JMenuItem jMenuItem9;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPopupMenu.Separator jSeparator1;
    private javax.swing.JPopupMenu.Separator jSeparator10;
    private javax.swing.JPopupMenu.Separator jSeparator11;
    private javax.swing.JPopupMenu.Separator jSeparator12;
    private javax.swing.JPopupMenu.Separator jSeparator13;
    private javax.swing.JToolBar.Separator jSeparator14;
    private javax.swing.JToolBar.Separator jSeparator15;
    private javax.swing.JToolBar.Separator jSeparator16;
    private javax.swing.JToolBar.Separator jSeparator17;
    private javax.swing.JToolBar.Separator jSeparator18;
    private javax.swing.JToolBar.Separator jSeparator19;
    private javax.swing.JPopupMenu.Separator jSeparator2;
    private javax.swing.JPopupMenu.Separator jSeparator3;
    private javax.swing.JPopupMenu.Separator jSeparator4;
    private javax.swing.JPopupMenu.Separator jSeparator5;
    private javax.swing.JPopupMenu.Separator jSeparator6;
    private javax.swing.JPopupMenu.Separator jSeparator7;
    private javax.swing.JPopupMenu.Separator jSeparator8;
    private javax.swing.JPopupMenu.Separator jSeparator9;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenuItem mnuAddChart;
    private javax.swing.JMenuItem mnuAddDataBaseField;
    private javax.swing.JMenuItem mnuAddFooter;
    private javax.swing.JMenuItem mnuAddGroup;
    private javax.swing.JMenuItem mnuAddHeader;
    private javax.swing.JMenuItem mnuAddImage;
    private javax.swing.JMenuItem mnuAddLabel;
    private javax.swing.JMenuItem mnuAddLine;
    private javax.swing.JMenu mnuControls;
    private javax.swing.JMenuItem mnuCopy;
    private javax.swing.JMenuItem mnuCut;
    private javax.swing.JMenu mnuDataBase;
    private javax.swing.JMenu mnuEdit;
    private javax.swing.JMenuItem mnuLock;
    private javax.swing.JMenu mnuMove;
    private javax.swing.JMenuItem mnuMoveHorizontal;
    private javax.swing.JMenuItem mnuMoveOnAllDirections;
    private javax.swing.JMenuItem mnuMoveVertical;
    private javax.swing.JMenuItem mnuNew;
    private javax.swing.JMenuItem mnuOpen;
    private javax.swing.JMenu mnuOpenRecent;
    private javax.swing.JMenuItem mnuPageSetup;
    private javax.swing.JMenuItem mnuPaste;
    private javax.swing.JMenuItem mnuPreview;
    private javax.swing.JMenuItem mnuPrint;
    private javax.swing.JMenuItem mnuPrinterSettings;
    private javax.swing.JMenuItem mnuSave;
    private javax.swing.JMenuItem mnuSaveAs;
    private javax.swing.JMenuItem mnuSearch;
    private javax.swing.JMenu mnuSections;
    private javax.swing.JMenuItem mnuSizeOfStepWithKeyboard;
    private javax.swing.JMenu mnuView;
    private javax.swing.JMenuItem mnuViewControlGrid;
    private javax.swing.JMenuItem mnuViewControlTree;
    private javax.swing.JMenu mnuViewGrid;
    private javax.swing.JMenuItem mnuViewGridHide;
    private javax.swing.JMenu mnuViewGridLines;
    private javax.swing.JMenuItem mnuViewGridLinesBoth;
    private javax.swing.JMenuItem mnuViewGridLinesHorizontal;
    private javax.swing.JMenuItem mnuViewGridLinesVertial;
    private javax.swing.JMenuItem mnuViewGridPoints;
    private javax.swing.JMenuItem mnuViewToolBox;
    private javax.swing.JPanel pnEditor1;
    private javax.swing.JPanel pnReport1;
    private javax.swing.JPanel pnRule1;
    private javax.swing.JProgressBar progressBar;
    private javax.swing.JScrollPane sclReport1;
    private javax.swing.JSplitPane splMain;
    private javax.swing.JLabel statusAnimationLabel;
    private javax.swing.JLabel statusMessageLabel;
    private javax.swing.JPanel statusPanel;
    private javax.swing.JTabbedPane tabReport;
    private javax.swing.JTabbedPane tabToolbox;
    // End of variables declaration//GEN-END:variables

    private final Timer messageTimer;
    private final Timer busyIconTimer;
    private final Icon idleIcon;
    private final Icon[] busyIcons = new Icon[15];
    private int busyIconIndex = 0;

    private ArrayList<cEditor> m_reports = null;

    private JDialog aboutBox;
}
